package com.xh3140.android.widget.dialog.params;


import android.content.Context;
import android.graphics.Typeface;
import android.view.Gravity;

import androidx.annotation.ColorInt;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Px;
import androidx.annotation.Size;

import com.xh3140.android.widget.dialog.values.ColorRes;
import com.xh3140.android.widget.dialog.values.DimenRes;

/**
 * 对话框加载主体视图配置属性
 * 每一个属性都有默认的设定值
 * 在创建对话框时这些属性可以自定义修改
 */
public final class LoadingParams extends AbstractParams {
    /**
     * 是否是旋转样式
     * true 旋转样式
     * false 水平样式
     */
    public boolean isSpinner = true;

    /**
     * 是否是无限的
     */
    public boolean isInfinite = true;

    /**
     * 旋转视图高度 px
     */
    @Px
    public int spinnerHeight = dp2px(DimenRes.LOADING_SPINNER_HEIGHT);

    /**
     * 水平视图高度 px
     */
    @Px
    public int horizontalHeight = dp2px(DimenRes.LOADING_HORIZONTAL_HEIGHT);

    /**
     * 加载视图进度条背景资源ID
     */
    @DrawableRes
    public int drawable = 0;

    /**
     * 加载视图进度条最大刻度
     */
    public int max = 100;

    /**
     * 加载视图进度条刻度
     */
    public int progress = 0;

    /**
     * 加载视图颜色 argb
     */
    @ColorInt
    public int tintColor = ColorRes.LOADING_TINT_COLOR;

    /**
     * 加载视图外边距
     * 格式：[start, top, end, bottom] px
     */
    @Nullable
    @Size(4)
    public int[] margins = dps2pxs(DimenRes.LOADING_INPUT_MARGINS);

    /**
     * 文本位置是否在上方
     */
    public boolean isTopSubtitle = false;

    /**
     * 文本
     */
    @Nullable
    public CharSequence text = null;

    /**
     * 文本位置
     */
    public int gravity = Gravity.CENTER;

    /**
     * 文本字体大小 sp
     */
    public float textSize = DimenRes.LOADING_TEXT_SIZE;

    /**
     * 文本字体颜色 argb
     */
    @ColorInt
    public int textColor = ColorRes.LOADING_TEXT_COLOR;

    /**
     * 文本字体样式
     */
    public int typeface = Typeface.NORMAL;

    /**
     * 背景颜色 argb
     */
    @ColorInt
    public int backgroundColor = ColorRes.LOADING_BACKGROUND_COLOR;

    /**
     * 内边距
     * 格式：[start, top, end, bottom] px
     */
    @Nullable
    @Size(4)
    public int[] padding = dps2pxs(DimenRes.LOADING_PADDING);

    /**
     * 高度 px
     */
    @Px
    public int height = 0;

    public LoadingParams(@NonNull Context context) {
        super(context);
    }
}